package com.gxc.array;

import java.util.Arrays;

/**
 * 2974. 最小数字游戏
 * 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ，同时还有一个空数组 arr 。
 * Alice 和 Bob 决定玩一个游戏，游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下：
 *
 * 每一轮，Alice 先从 nums 中移除一个 最小 元素，然后 Bob 执行同样的操作。
 * 接着，Bob 会将移除的元素添加到数组 arr 中，然后 Alice 也执行同样的操作。
 * 游戏持续进行，直到 nums 变为空。
 * 返回结果数组 arr 。
 */
public class NumberGame {

    public static void main(String[] args) {
        println(handle(new int[]{5,4,2,3}));
        println(handle(new int[]{2, 5}));
    }



    public static int[] handle(int[] nums) {
        int[] arr = new int[nums.length];
        Arrays.sort(nums);
        int a = 0;
        int b = 0;
        for (int i = 0; i < nums.length; i++) {
            a = nums[i];
            i++;
            b = nums[i];
            arr[i-1] = b;
            arr[i] = a;
        }
        return arr;
    }

    private static void println(int[] nums) {
        for (int i = 0; i < nums.length; i++) {
            System.out.print(nums[i]);
        }
        System.out.println("");
    }

    /**
     * 对原数组排序，再将每对相邻元素对调，最后返回数组。
     */
    class Solution {
        public int[] numberGame(int[] nums) {
            Arrays.sort(nums);
            for (int i = 0; i < nums.length; i += 2) {
                int tmp = nums[i];
                nums[i] = nums[i + 1];
                nums[i + 1] = tmp;
            }
            return nums;
        }
    }

}
